﻿using System;
using System.Xml;

using Yawf.Security.Entities;
using Yawf.Web.Utils;

namespace Yawf.Web.Managers.Modules {
	public interface IModule {
		/// <summary>
		/// This interface must be implemented by modules invoked by 
		/// ModuleModelManager. 
		/// </summary>
		/// <param name="elem">XmlElement that this module response for</param>
		/// <param name="requestWrapper">RequestWrapper object to use</param>
		/// <param name="responseWrapper">ResponseWrapper object to use</param>
		/// <param name="user">Current user, could be null if user is not logged on</param>
		void Execute(XmlElement elem,RequestWrapper requestWrapper,ResponseWrapper responseWrapper,IUser user);
	}
}
